package cn.edu.ntu.yyl.dao;

import cn.edu.ntu.yyl.pojo.article.Article;
import cn.edu.ntu.yyl.pojo.article.ArticleComment;
import cn.edu.ntu.yyl.pojo.user.Role;
import cn.edu.ntu.yyl.pojo.user.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserInfoDao {
	//获取全部用户
	List<UserInfo> getUserInfoList();
	//根据ID查询用户
	UserInfo getUserInfoByID(Integer ID);
	//插入用户
	Integer addUser(UserInfo user);
	//修改用户
	Integer updateUser(UserInfo user);
	//删除用户
	Integer deleteUserById(int id);
	//用户注销
	Integer deleteUser(UserInfo userInfo);
	//根据用户名和密码查询用户
	UserInfo getUserByUserNameAndPassWord(UserInfo user);
	//根据邮箱查询用户
	UserInfo getUserByEmail(String email);
	//根据用户名查询用户
	UserInfo getUserByUserName(String username);
	//根据邮箱和密码查询用户
	UserInfo getUserByEmailAndPassWord(UserInfo user);
	//更新用户登录时间
	Integer updatelogintime(UserInfo user);
	//万能查询
	List<UserInfo> autoSelect(String key,String value);
	//根据文章查询用户
	UserInfo SelectUserByArticle(Article article);
	//查询权限组的所有用户
	List<UserInfo> SelectByRole(Role role);
	//按照评论查询用户
	UserInfo SelectByComment(ArticleComment articleComment);
}
